home *** CD-ROM | disk | FTP | other *** search
- class VerticalScroller extends MovieClip
- {
- var defaultPos;
- var content;
- var scrollBarPos;
- var scrollBar;
- var scrollBarXPos;
- var scrollBarSize;
- var excuseText;
- var loaderText;
- var mContent;
- var scrollTrack;
- var scrollUpBtn;
- var scrollDownBtn;
- var currentScroll;
- var contentMask;
- var maximumScroll;
- var scrollBarMaxDrag;
- function VerticalScroller()
- {
- super();
- this.init();
- }
- function init()
- {
- this.setScroll(false);
- this.defaultPos = this.content._y;
- this.scrollBarPos = this.scrollBar._y;
- this.scrollBarXPos = this.scrollBar._x;
- this.scrollBarSize = this.scrollBar._height;
- this.excuseText = "";
- this.loaderText._visible = true;
- this.mContent.removeMovieClip();
- this.mContent = this.content.createEmptyMovieClip("contentHolder",this.content.getNextHighestDepth());
- }
- function getContent()
- {
- return this.mContent;
- }
- function hideMessage()
- {
- this.loaderText._visible = false;
- }
- function setScroll(vis)
- {
- this.scrollBar._visible = vis;
- this.scrollTrack._visible = vis;
- this.scrollUpBtn._visible = vis;
- this.scrollDownBtn._visible = vis;
- }
- function calculateScroll()
- {
- this.currentScroll = 0;
- if(this.content._height > this.contentMask._height)
- {
- this.setScroll(true);
- this.maximumScroll = this.content._height - this.contentMask._height + 5;
- this.scrollBar._yscale = this.contentMask._height / (this.maximumScroll + this.contentMask._height) * 100;
- }
- else
- {
- this.setScroll(false);
- this.maximumScroll = 0;
- this.scrollBar._yscale = 100;
- }
- this.scrollBar._y = this.scrollBarPos;
- this.content._y = this.defaultPos;
- this.getScrollBarMaxDrag();
- }
- function updateScrollBarPos()
- {
- this.scrollBar._y = this.currentScroll / this.maximumScroll * (this.scrollBarSize - this.scrollBar._yscale / 100 * this.scrollBarSize) + this.scrollBarPos;
- }
- function getScrollBarMaxDrag()
- {
- this.scrollBarMaxDrag = this.scrollBarSize - this.scrollBar._yscale / 100 * this.scrollBarSize + this.scrollBarPos;
- return this.scrollBarMaxDrag;
- }
- function updateScroll(sscroll)
- {
- if(sscroll > this.maximumScroll)
- {
- this.currentScroll = this.maximumScroll;
- }
- else if(sscroll < 0)
- {
- this.currentScroll = 0;
- }
- else
- {
- this.currentScroll = sscroll;
- }
- this.content._y = this.defaultPos - this.currentScroll;
- this.updateScrollBarPos();
- }
- function updateScrollFromBar()
- {
- this.currentScroll = (this.scrollBar._y - this.scrollBarPos) / (this.scrollBarMaxDrag - this.scrollBarPos) * this.maximumScroll;
- this.content._y = this.defaultPos - this.currentScroll;
- }
- function addToScroll(amount)
- {
- this.updateScroll(this.currentScroll + amount);
- }
- }
-